package com.zy.xuanwo.zyc.portal.parser;


import com.zy.xuanwo.zyc.portal.bean.ErrorMessag;
import com.zy.xuanwo.zyc.portal.callback.InternetListerner;

import org.json.JSONException;
import org.json.JSONObject;

public abstract class BaseParser<T> {

    public abstract T parserJSON(String jsonStr) throws JSONException;

    protected String checkResponse(String jsonStr) throws JSONException {
        if (jsonStr == null || "".equals(jsonStr.trim())) {
            return null;
        } else {
            return jsonStr;
        }
    }

    public ErrorMessag ParseResult(String json) throws JSONException {
        ErrorMessag errorMessag = null;
        String error = null;
        if (null == checkResponse(json)) {
            errorMessag = new ErrorMessag();
            errorMessag.setErrorMsg(InternetListerner.RESPONSE_PARSION_JSON_ERROR);
        } else {
            JSONObject jo = new JSONObject(json);
            if (!jo.isNull("error")) {
                errorMessag = new ErrorMessag();
                JSONObject mJSONObject = jo.getJSONObject("error");
                errorMessag.setErrorCode(mJSONObject.getString("code"));
                errorMessag.setErrorMsg(mJSONObject.getString("message"));
            }
        }
        return errorMessag;
    }

    public ErrorMessag ParseResultPoly(String json) throws JSONException {
        return ParseResult(json);
    }
}
